======================================================
              GBA MultiDeCompressor 0.3beta2e
                        by Mat
                      21/05/2004
======================================================

------------------------------------------------------
0 - INDICE
------------------------------------------------------

1 - Intro
2 - Come si usa
3 - Note tecniche
4 - Progressi
5 - Progressi futuri
6 - Ringraziamenti
7 - Disclaimer


------------------------------------------------------
1 - INTRO
------------------------------------------------------

Questo programma permette di estrarre e reinserire
parti compresse dalle rom del GBA.
Il programma permette di specificare l'offset di
partenza oppure di analizzare un log del
VisualBoyAdvance per ottenere informazioni sulle zone
compresse.
Inoltre genera in automaticamente un .bat che consente
di reinserire il tutto facilmente.


------------------------------------------------------
2 - COME SI USA
------------------------------------------------------

Questo e' un tool che si usa al prompt del dos (a
seconda della versione di Windows lo trovate sotto
Start\Programmi o Start\Programmi\Accessori).


ESTRAZIONE DA UN OFFSET

 Per estrarre i dati a partire da un offset conosciuto
 digitare:
   GBAmdc -e rom.gba dest.dat offset(hex)

 Dove naturalmente rom.gba e' la rom del gioco,
 dest.dat il file che conterra' i dati estratti e
 offset(hex) e' l'indirizzo della rom da cui iniziare
 l'estrazione (in esadecimale).


ESTRAZIONE MEDIANTE LOG

 Per estrarre i dati utilizzando un log del
 VisualBoyAdvance digitare:
   GBAmdc -a rom.gba log.txt

 Dove naturalmente rom.gba e' la rom del gioco e
 log.txt e' il log salvato dal VBA.
 Durante quest'operazione verranno creati dei file
 del tipo 001.dat, 002.dat, ecc. contenenti i dati
 estratti e un file .bat che consentira' di reinserire
 automaticamente tutti i file estratti


COMPRIMERE UN FILE CON LZ77

 Per comprimere un file e posizionare i dati a un
 offset conosciuto digitare:
   GBAmdc -cL7 dati.dat rom.gba offset(hex)

 Dove naturalmente dati.dat e' il file da comprimere,
 rom.gba e' la rom del gioco, e offset(hex) e'
 l'indirizzo della rom da cui iniziare la scrittura
 (in esadecimale).


COMPRIMERE UN FILE CON LZ77 (COMPRESSIONE MASSIMA)

 Usare lo stesso procedimento della compressione LZ77
 normale, cambiando l'opzione in -cL7m
 Consiglio di provare questa compressione solo se si
 ha carenza di spazio, dato che a volte le immagini
 risulatano corrotte.


COME SALVARE UN LOG CON IL VBA
 Una volta lanciato il VBA andare sotto Tools/Logging
 quindi attivare la casella SWI.
 Caricare la rom e aspettare che vengano caricati i
 dati compressi, quindi andare di nuovo sotto Logging
 e cliccare Save... per salvare il log.
 NOTA: Il logging funziona solo con la versione
       Developer del VBA.


------------------------------------------------------
3 - NOTE TECNICHE
------------------------------------------------------

La compressione LZ77 mi ha dato parecchi grattacapi,
perche' all'interno dell'emulatore diverse immagini
risultavano corrotte. Adesso sembra che funzioni,
pero' l'inconveniente e' sempre dietro l'angolo.
Inoltre c'e' la possibilita' che una volta modificati
i file ricompressi siano pi grandi dell'originale e
quindi sforino all'interno della ROM.
Adesso per facilitare il controllo vengono stampate
le dimensioni dei dati nella ROM, anche se di solito
piccoli sforamenti sono accettati.
Nel caso lo sformento sia troppo grande si puo'
provare con la compressione massima, che per non
garantisce sempre la corretta visualizzazione delle
immagini (provare non costa nulla cmq).


------------------------------------------------------
4 - PROGRESSI
------------------------------------------------------

Versione 0.3beta2e (21/05/2004) 

- Aggiunto il readme inglese


Versione 0.3beta2 (10/01/2004)

- Stampate a video le dimensioni dei dati
  estratti/compressi nella ROM per consentire il
  controllo sulla dimensione
- Inserita la compressione massima (da provare dato
  che a volte corrompe le immagini)


Versione 0.3beta (02/01/2004)

- Risolti piccoli bug nella decompressione LZ77
- Inserita la compressione LZ77 (con molta fatica
  sembra che sia riuscito a capire le caratteristiche
  particolari di quella originale)
- Nell'estrazione via log aggiunta la creazione
  automatica di un .bat per il reinserimento


Versione 0.2beta (28/12/2003) (non pubblicata)

- Decompressione LZ77 sia diretta che da log del VBA


------------------------------------------------------
5 - PROGRESSI FUTURI
------------------------------------------------------

- Correggere eventuali bug
- Aggiungere la gestione degli altri tipi di
  compressioni usate dal GBA
- Pubblicare il codice sorgente


------------------------------------------------------
6 - RINGRAZIAMENTI
------------------------------------------------------

^Chiunque usera' o pubblichera' questo programma :)
^Ombra per avermi spinto a realizzare questo programma
 e per le preziose informazioni
^mentz per essere stato il primo ad usarlo
^GeO per la prima versione del readme inglese


------------------------------------------------------
7 - DISCLAIMER
------------------------------------------------------

Questo programma deve essere usato solo per scopi
LEGALI!
Usa questo programma a tuo rischio e pericolo :).
Questo programma puo' essere liberamente distribuito.
Ti raccomando solo di distribuirlo nello stato in cui
si trova.
Grazie.

Game Boy Advance, Nintendo, VisualBoyAdvance ed i
relativi nomi sono marchi registrati dei relativi
proprietari.

Mat
mattia.d.r@libero.it
http://www.matzone.altervista.org/
Membro dei SadNES cITy: http://www.sadnescity.it/
